gsk: Apply scale factor for fallback rendering
authorMatthias Clasen <mclasen@redhat.com>
Sat, 28 Oct 2017 18:38:49 +0000 (14:38 -0400)
committerMatthias Clasen <mclasen@redhat.com>
Sat, 28 Oct 2017 18:38:49 +0000 (14:38 -0400)
This fixes blurry text and icons whenever we apply shadows
in a hidpi window. Shadow nodes are the last ones that we
still use fallback for, and this was causing us to render
the text blurry.

gsk/gskvulkanrenderpass.c

index 37cdf25347df25a4b70b6b2ac1742071a7fc9730..d902a90961fc0ac6147376662f7503a523ff8bcb 100644 (file)
@@ -848,8 +848,9 @@ gsk_vulkan_render_pass_upload_fallback (GskVulkanRenderPass  *self,
 
   /* XXX: We could intersect bounds with clip bounds here */
   surface = cairo_image_surface_create (CAIRO_FORMAT_ARGB32,
-                                        ceil (node->bounds.size.width),
-                                        ceil (node->bounds.size.height));
+                                        ceil (node->bounds.size.width * self->scale_factor),
+                                        ceil (node->bounds.size.height * self->scale_factor));
+  cairo_surface_set_device_scale (surface, self->scale_factor, self->scale_factor);
   cr = cairo_create (surface);
   cairo_translate (cr, -node->bounds.origin.x, -node->bounds.origin.y);